using System;
using System.Collections.Generic;
using System.Text;

namespace Minimal.Web
{
    /// <summary>
    /// Specifies kinds of parameters to be excluded from
    /// rendered query strings, if a query string is handled
    /// only by it's QueryString class there's really no
    /// reason to render default values since they are known to
    /// the class anyway, however if the query string is also read
    /// from let's say ECMA-script then the default values has to 
    /// be rendered so that the script can retrieve the values.
    /// If however the default value is empty it would not have
    /// to be rendered since it will only contain the key anyway. 
    /// The default values for this can be set in the configuration file.
    /// </summary>
    [Flags]
    public enum ParameterExclusions
    {
        /// <summary>
        /// All parameters are rendered.
        /// </summary>
        None = 0,

        /// <summary>
        /// Parameters with the default value set will not be rendered.
        /// </summary>
        ExcludeDefaultValues = 1,

        /// <summary>
        /// Parameters with an empty default value and where the default
        /// value is set will not be rendered.
        /// </summary>
        ExcludeEmptyDefaultValues = 2
    }
}
